bitkeeper revision 1.105.1.5 (3e5f78b2JrROb7627ksGnXNIWgAM3w)
authorsmh22@boulderdash.cl.cam.ac.uk <smh22@boulderdash.cl.cam.ac.uk>
Fri, 28 Feb 2003 14:56:50 +0000 (14:56 +0000)
committersmh22@boulderdash.cl.cam.ac.uk <smh22@boulderdash.cl.cam.ac.uk>
Fri, 28 Feb 2003 14:56:50 +0000 (14:56 +0000)
domain builder fix

BitKeeper/etc/ignore
tools/domain_builder/dom_builder.c
xen/common/keyhandler.c

index 0b34c3a5287430481d3e06d9ab832cd1ad3e0bb1..57a490238093eaea5b72ed2d38b1ce3d5fd2469f 100644 (file)
@@ -22,3 +22,134 @@ xenolinux-2.4.16-sparse/scripts/kconfig.tk
 xen-2.4.16/foo
 xen-2.4.16/common/domain.c.smh
 URK
+tools/domain_builder/dom_builder.o
+tools/domain_builder/dom_kill.o
+tools/domain_builder/domain_builder
+tools/domain_builder/kill_domain
+xen/arch/i386/acpitable.o
+xen/arch/i386/apic.o
+xen/arch/i386/arch.o
+xen/arch/i386/boot/boot.o
+xen/arch/i386/delay.o
+xen/arch/i386/entry.o
+xen/arch/i386/extable.o
+xen/arch/i386/i387.o
+xen/arch/i386/i8259.o
+xen/arch/i386/idle0_task.o
+xen/arch/i386/io_apic.o
+xen/arch/i386/ioremap.o
+xen/arch/i386/irq.o
+xen/arch/i386/mm.o
+xen/arch/i386/mpparse.o
+xen/arch/i386/pci-dma.o
+xen/arch/i386/pci-i386.o
+xen/arch/i386/pci-irq.o
+xen/arch/i386/pci-pc.o
+xen/arch/i386/process.o
+xen/arch/i386/rwlock.o
+xen/arch/i386/setup.o
+xen/arch/i386/smp.o
+xen/arch/i386/smpboot.o
+xen/arch/i386/time.o
+xen/arch/i386/trampoline.o
+xen/arch/i386/traps.o
+xen/arch/i386/usercopy.o
+xen/common/ac_timer.o
+xen/common/block.o
+xen/common/brlock.o
+xen/common/common.o
+xen/common/dom0_ops.o
+xen/common/domain.o
+xen/common/domain_page.o
+xen/common/event.o
+xen/common/kernel.o
+xen/common/keyhandler.o
+xen/common/lib.o
+xen/common/memory.o
+xen/common/network.o
+xen/common/page_alloc.o
+xen/common/perfc.o
+xen/common/resource.o
+xen/common/schedule.o
+xen/common/slab.o
+xen/common/softirq.o
+xen/common/timer.o
+xen/common/vsprintf.o
+xen/drivers/block/blkpg.o
+xen/drivers/block/driver.o
+xen/drivers/block/elevator.o
+xen/drivers/block/genhd.o
+xen/drivers/block/ll_rw_blk.o
+xen/drivers/block/xen_block.o
+xen/drivers/char/driver.o
+xen/drivers/char/xen_kbd.o
+xen/drivers/char/xen_serial.o
+xen/drivers/ide/driver.o
+xen/drivers/ide/ide-disk.o
+xen/drivers/ide/ide-dma.o
+xen/drivers/ide/ide-features.o
+xen/drivers/ide/ide-geometry.o
+xen/drivers/ide/ide-pci.o
+xen/drivers/ide/ide-probe.o
+xen/drivers/ide/ide-taskfile.o
+xen/drivers/ide/ide-xeno.o
+xen/drivers/ide/ide.o
+xen/drivers/ide/piix.o
+xen/drivers/net/3c59x.o
+xen/drivers/net/Space.o
+xen/drivers/net/driver.o
+xen/drivers/net/e1000/e1000.o
+xen/drivers/net/e1000/e1000_ethtool.o
+xen/drivers/net/e1000/e1000_hw.o
+xen/drivers/net/e1000/e1000_main.o
+xen/drivers/net/e1000/e1000_param.o
+xen/drivers/net/ne/8390.o
+xen/drivers/net/ne/ne.o
+xen/drivers/net/ne/ne_drv.o
+xen/drivers/net/net_init.o
+xen/drivers/net/setup.o
+xen/drivers/net/tg3.o
+xen/drivers/pci/classlist.h
+xen/drivers/pci/compat.o
+xen/drivers/pci/devlist.h
+xen/drivers/pci/driver.o
+xen/drivers/pci/gen-devlist
+xen/drivers/pci/names.o
+xen/drivers/pci/pci.o
+xen/drivers/pci/quirks.o
+xen/drivers/pci/setup-res.o
+xen/drivers/scsi/aacraid/aachba.o
+xen/drivers/scsi/aacraid/aacraid.o
+xen/drivers/scsi/aacraid/commctrl.o
+xen/drivers/scsi/aacraid/comminit.o
+xen/drivers/scsi/aacraid/commsup.o
+xen/drivers/scsi/aacraid/dpcsup.o
+xen/drivers/scsi/aacraid/linit.o
+xen/drivers/scsi/aacraid/rx.o
+xen/drivers/scsi/aacraid/sa.o
+xen/drivers/scsi/constants.o
+xen/drivers/scsi/driver.o
+xen/drivers/scsi/hosts.o
+xen/drivers/scsi/scsi.o
+xen/drivers/scsi/scsi_dma.o
+xen/drivers/scsi/scsi_error.o
+xen/drivers/scsi/scsi_ioctl.o
+xen/drivers/scsi/scsi_lib.o
+xen/drivers/scsi/scsi_merge.o
+xen/drivers/scsi/scsi_proc.o
+xen/drivers/scsi/scsi_queue.o
+xen/drivers/scsi/scsi_scan.o
+xen/drivers/scsi/scsi_syms.o
+xen/drivers/scsi/scsicam.o
+xen/drivers/scsi/sd.o
+xen/image
+xen/image.gz
+xen/include/asm
+xen/include/linux
+xen/net/dev.o
+xen/net/dev_mcast.o
+xen/net/devinit.o
+xen/net/eth.o
+xen/net/network.o
+xen/net/skbuff.o
+xen/tools/elf-reloc
index 18bc64373433176f735b0a4c4158fe032757922f..a402aef99c4fe9932122c2517907dd0ec4a1ede8 100644 (file)
@@ -52,10 +52,10 @@ static void dom_mem_cleanup(dom_mem_t * dom_mem)
     if(mem_fd < 0){
         perror(PERR_STRING);
     }
-
-       if(write(mem_fd, (dom_mem_t *)dom_mem, sizeof(dom_mem_t)) < 0){
-               dbstatus("Error unmapping domain's memory.\n");
-       }
+    
+    if(write(mem_fd, (dom_mem_t *)dom_mem, sizeof(dom_mem_t)) < 0){
+       dbstatus("Error unmapping domain's memory.\n");
+    }
 
     close(mem_fd);
 }
@@ -163,7 +163,7 @@ static dom0_newdomain_t * create_new_domain(long req_mem)
     close(id_fd);
     
     sprintf(cmd_path, "Reserved %ld kbytes memory and assigned id %d to the"
-                    "new domain.", req_mem, dom_data->domain);
+           new domain.", req_mem, dom_data->domain);
     dbstatus(cmd_path);
 
     return dom_data;
@@ -386,6 +386,7 @@ static int launch_domain(dom_meminfo_t  * meminfo)
     dbstatus("Launched the new domain!");
 
     close(cmd_fd);
+    return 0;
 }
 
 int main(int argc, char **argv)
@@ -401,51 +402,45 @@ int main(int argc, char **argv)
     int kernel_fd;
     int count;
     int cmd_len;
-    int ret = 0;
+    int rc = -1;
 
-       unsigned long addr;
+    unsigned long addr;
 
-    if(argc < 4){
+    if(argc < 4) {
         dberr("Usage: dom_builder <kbytes_mem> <image> <num_vifs> "
-                        "<boot_params>\n");
-        ret = -1;
+             "<boot_params>\n");
         goto out;
     }
 
     /* create new domain and set up all the neccessary mappings */
 
     kernel_fd = do_kernel_chcks(argv[2], atol(argv[1]), &load_addr, &ksize);
-    if(kernel_fd < 0){
-        ret = -1;
+    if(kernel_fd < 0) {
+       rc = errno; 
         goto out;
     }
-
+    
     /* request the creation of new domain */
-    dom_data = create_new_domain(atol(argv[1]));
-    if(dom_data == 0){
-        ret = -1;
+    if(!(dom_data = create_new_domain(atol(argv[1])))) 
         goto out;
-    }
 
     /* map domain's memory */
-    if(map_dom_mem(dom_data->pg_head, dom_data->memory_kb >> (PAGE_SHIFT - 10), 
-        dom_data->domain, &dom_os_image)){
-        ret = -1;
+    if(map_dom_mem(dom_data->pg_head, dom_data->memory_kb >> (PAGE_SHIFT-10), 
+                  dom_data->domain, &dom_os_image))
         goto out;
-    }
 
     /* the following code does the actual domain building */
-    meminfo = setup_guestos(dom_data->domain, kernel_fd, load_addr, ksize, 
-        &dom_os_image);
-    if(meminfo == NULL){
-               printf("Domain Builder: debug: meminfo NULL\n");
-        ret = -1;
-        dom_mem_cleanup(&dom_os_image);
+    meminfo = setup_guestos(dom_data->domain, kernel_fd, load_addr, 
+                           ksize, &dom_os_image); 
+    
+    /* and unmap the new domain's memory image since we no longer need it */
+    dom_mem_cleanup(&dom_os_image);
+
+    if(!meminfo) { 
+       printf("Domain Builder: debug: meminfo NULL\n");
         goto out;
     }
 
-    dom_mem_cleanup(&dom_os_image);
-
     meminfo->virt_load_addr = load_addr;
     meminfo->num_vifs = atoi(argv[3]);
     meminfo->cmd_line[0] = '\0';
@@ -471,13 +466,11 @@ int main(int argc, char **argv)
     dbstatus(status);
     
     /* and launch the domain */
-    if(launch_domain(meminfo) != 0)
-       ret = -1;
-
+    rc = launch_domain(meminfo); 
     
 out:
-    if( ret >= 0 )
+    if( rc >= 0 )
        return meminfo->domain;
     else 
-       return ret;
+       return rc;
 }
index dcd1daa564786c753c58a0bec15e5e204ee12e6c..8bb4fecab0a00e48ee17aaad8417771075a841c7 100644 (file)
@@ -76,7 +76,7 @@ void halt_machine(u_char key, void *dev_id, struct pt_regs *regs)
 /* XXX SMH: this is keir's fault */
 static char *task_states[] = 
 { 
-    "Running", 
+    "Runnable", 
     "Interruptible Sleep", 
     "Uninterruptible Sleep", 
     NULL, "Stopped", 
@@ -104,9 +104,8 @@ void do_task_queues(u_char key, void *dev_id, struct pt_regs *regs)
            printk("Notifying guest...\n"); 
            set_bit(_EVENT_DEBUG, &s->events); 
        }
-    }
+    } while ( (p = p->next_task) != &idle0_task );
 
-    while ( (p = p->next_task) != &idle0_task );
     read_unlock_irqrestore(&tasklist_lock, flags); 
 }